package uniandes.cupi2.musiteka.servidor.interfaz;

import javax.swing.JPanel;
import java.awt.Frame;
import java.awt.BorderLayout;
import javax.swing.JDialog;
import java.awt.Dimension;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JList;
import java.awt.GridBagLayout;
import java.util.ArrayList;

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;

import uniandes.cupi2.musiteka.servidor.mundo.IIteradorMusiteka;
import uniandes.cupi2.musiteka.servidor.mundo.IMusiteka;
import uniandes.cupi2.musiteka.servidor.mundo.musiteka1.Musiteka;

public class DialogoUsuariosPorFechaDeterminada extends JDialog {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JScrollPane jScrollPaneUsuariosPorFecha = null;
	private JList jListUsuariosRegistradosPorFecha = null;
	private JPanel jPanelPanelBotones = null;
	private JTextField jTextFieldFecha = null;
	private JLabel jLabelfecha = null;
	private JButton jButtonAceptar = null;
	private JButton jButtonCerrar = null;
	public Musiteka mundo;

	/**
	 * @param owner
	 */
	public DialogoUsuariosPorFechaDeterminada(IMusiteka nMundo) {
		mundo=(Musiteka) nMundo;
		super.setVisible(true);
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 479);
		this.setTitle("Usuarios Registrados despues de una fecha");
		this.setContentPane(getJContentPane());
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJScrollPaneUsuariosPorFecha(), null);
			jContentPane.add(getJPanelPanelBotones(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jScrollPaneUsuariosPorFecha	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPaneUsuariosPorFecha() {
		if (jScrollPaneUsuariosPorFecha == null) {
			jScrollPaneUsuariosPorFecha = new JScrollPane();
			jScrollPaneUsuariosPorFecha.setBounds(new Rectangle(15, 15, 256, 271));
			jScrollPaneUsuariosPorFecha.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
			jScrollPaneUsuariosPorFecha.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
			jScrollPaneUsuariosPorFecha.setViewportView(getJListUsuariosRegistradosPorFecha());
			jScrollPaneUsuariosPorFecha.setBorder(BorderFactory.createTitledBorder(null, "Usuarios", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51)));
		}
		return jScrollPaneUsuariosPorFecha;
	}

	/**
	 * This method initializes jListUsuariosRegistradosPorFecha	
	 * 	
	 * @return javax.swing.JList	
	 */
	private JList getJListUsuariosRegistradosPorFecha() {
		if (jListUsuariosRegistradosPorFecha == null) {
			jListUsuariosRegistradosPorFecha = new JList();
		}
		return jListUsuariosRegistradosPorFecha;
	}

	/**
	 * This method initializes jPanelPanelBotones	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanelPanelBotones() {
		if (jPanelPanelBotones == null) {
			jLabelfecha = new JLabel();
			jLabelfecha.setBounds(new Rectangle(15, 30, 151, 16));
			jLabelfecha.setText("Ingrese la fecha por favor");
			jPanelPanelBotones = new JPanel();
			jPanelPanelBotones.setLayout(null);
			jPanelPanelBotones.setBounds(new Rectangle(15, 300, 256, 121));
			jPanelPanelBotones.add(getJTextFieldFecha(), null);
			jPanelPanelBotones.add(jLabelfecha, null);
			jPanelPanelBotones.add(getJButtonAceptar(), null);
			jPanelPanelBotones.add(getJButtonCerrar(), null);
		}
		return jPanelPanelBotones;
	}

	/**
	 * This method initializes jTextFieldFecha	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextFieldFecha() {
		if (jTextFieldFecha == null) {
			jTextFieldFecha = new JTextField();
			jTextFieldFecha.setBounds(new Rectangle(15, 45, 226, 20));
			jTextFieldFecha.setText("AAAA/MM/DD");
		}
		return jTextFieldFecha;
	}

	/**
	 * This method initializes jButtonAceptar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonAceptar() {
		if (jButtonAceptar == null) {
			jButtonAceptar = new JButton();
			jButtonAceptar.setBounds(new Rectangle(15, 75, 106, 31));
			jButtonAceptar.setText("Aceptar");
			jButtonAceptar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					ArrayList lista=new ArrayList();
					String fecha=jTextFieldFecha.getText();
					IIteradorMusiteka aux=(IIteradorMusiteka) mundo.darUsuariosRegistradosDespuesDeUnaFechaDada(fecha);
					while(aux.haySiguiente())
					{
						lista.add(aux.darSiguiente());
					}
					jListUsuariosRegistradosPorFecha.setListData(lista.toArray());
				}
			});
		}
		return jButtonAceptar;
	}

	/**
	 * This method initializes jButtonCerrar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonCerrar() {
		if (jButtonCerrar == null) {
			jButtonCerrar = new JButton();
			jButtonCerrar.setBounds(new Rectangle(135, 75, 106, 31));
			jButtonCerrar.setText("Cerrar");
			jButtonCerrar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					dispose();
				}
			});
		}
		return jButtonCerrar;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
